package com.toe.commodity.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.toe.common.restful.JsonPage;
import com.toe.pojo.dto.commodity.CommodityClassesDTO;
import com.toe.pojo.entity.commodity.CommodityClasses;
import com.toe.pojo.vo.commodity.CommodityClassVO;
import com.toe.pojo.vo.commodity.CommodityOrderClassVO;
import com.toe.pojo.vo.commodity.CommodityUserBuyClassesVO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 陶涛
 * @since 2022-07-15
 */
public interface CommodityClassesService extends IService<CommodityClasses> {
    //课程商品的相关操作

    //添加新的在售课程
    void addNewCommodityClass(CommodityClasses commodityClasses);

    //查询一个课程集合
    List<CommodityClassVO> getCommodityClassByIdList(List<Long> ids);

    //更新在售课程信息
    void updateCommodityClass(CommodityClassesDTO commodityClassesDTO);

    //删除在售的课程
    void deletedCommodityClass(Long id);

    //根据id查询商品信息0
    CommodityClassVO getCommodityClassById(Long id, Long userId);

    //根据商品销量查询商品列表0
    JsonPage<CommodityClassVO> getCommodityClassBySales(Integer pageNum, Integer pageSize);

    //根据课程类型id查询对应的课程信息
    JsonPage<CommodityClassVO> getCommodityClassByClassTypeId(Integer pageNum, Integer pageSize, Long id);

    //根据商家id查询对应的课程信息
    JsonPage<CommodityClassVO> getCommodityClassByBusinessId(Integer pageNum, Integer pageSize , Long id);

    CommodityOrderClassVO getOrderClassById(Long classId);

    List<CommodityOrderClassVO> listOrderClassesByIds(List<Long> classIds);

    JsonPage<CommodityUserBuyClassesVO> listUserBuyClassesByIds(Long userId, Integer pageNum, Integer pageSize);

}
